/**
 * 通过id获取DOM元素
 * @param id String 元素的id名 必须
 * @returns {HTMLElement}
 */
function $id(id){
    return document.getElementById(id);
}

/**
 *  通过标签名获取DOM元素
 * @param tagName  String 标签名 必须
 * @param parentName  DOM元素 父级元素 非必须
 * @returns {HTMLCollectionOf<Element>}
 */
function $tag(tagName,parentName){
    let parent = parentName||document;
    return parent.getElementsByTagName(tagName);
}

/**
 * 通过class名获取DOM元素
 * @param className String class名  必须
 * @param parentName DOM元素 父级元素 非必须
 * @returns {HTMLCollectionOf<Element>}
 */
function $class(className,parentName){
    let parent = parentName||document;
    return parent.getElementsByClassName(className);
}

/**
 * 获取元素样式中属性为attr的值
 * @param obj 元素对象 必须
 * @param attr 属性名称 必须
 * @returns {*}
 */
function getStyle(obj,attr) {
    // /*  currentStyle仅支持IE，不支持火狐和谷歌
    //  *  此处为判断是否存在currentStyle，如果存在表示用户使用的是IE浏览器，直接用currentStyle返回样式
    //  */
    // if(obj.currentStyle) {
    //     return obj.currentStyle[attr];
    // }
    // //否则的话用兼容火狐谷歌，不兼容IE的getComputedStyle返回样式
    // else{
    //     return window.getComputedStyle(obj)[attr];
    // }

    //因为attr实际是一个变量，在obj内并没有attr属性，所以要写成[attr]，不能用.[attr]
    return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, false)[attr];
}

/**
 * 让元素垂直水平居中
 * @param obj 居中元素
 * @param parent 居中元素的父级元素 非必须 不传的时候默认为相对于body水平垂直居中
 */
function showCenter(obj,parent){
    obj.display='';
    let parentWidth,parentHeight;
    if(parent)
    {
        parentWidth=parent.clientWidth;
        parentHeight=parent.clientHeight;
    }
    else
    {
        parentWidth=document.documentElement.clientWidth||document.body.clientWidth;
        parentHeight=document.documentElement.clientHeight||document.body.clientHeight;
    }
    //obj在parent中垂直水平居中
    let left,top;
    left=(parentWidth-obj.offsetWidth)/2;
    top=(parentHeight-obj.offsetHeight)/2;
    obj.style.left=left+"px";
    obj.style.top=top+'px';
    window.onresize=function()
    {
        showCenter(obj,parent);
    }
}

